C语言问题 }

来源:百度知道 编辑:UC知道 时间:2024/06/27 11:20:34
有以下程序:
#include <stdio.h>
main()
{ char c;
while((c=getchar())!='?')putchar(--c);
}
程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为____.
答案是X。
请高手指点

getchar()是接受一个字符

输入Y后,c保存值为Y

putchar函数原型:
int putchar(int ch)

c是字符保存在内存中是它的ASCII码,--c就变成了X的ASCII码值了,然后输出。

While执行接受下一个字符为“?”,退出循环。

当然是X了,因为你输入的Y?N?会留在缓冲区里然后一个一个的读取,先读Y输出X(X是Y前一个),遇到?便结束了循环了,后面的就不值行了

题目的意思是当输入不为问号时 输出为输入端字符的阿斯克码大小的前一位字符 当收到问号时程序无动静 输入N时跳回TC程序页面